#fact:
      	addiu   $sp,$sp,-40
        sw	$31,$sp,36
        sw	$fp,$sp,32
        move    $fp,$sp
        sw	$4,$fp,40
        lw	$3,$fp,40
        li	$2,1                    # 0x1
        bne     $3,$2,5 #$L2
        nop
		li	$2,1                    # 0x1
        sw	$2,$fp,24
        beq $0,$0,16 #$L4
        nop
#$L2:
     	lw	$2,$fp,40
        nop
        addiu   $2,$2,-1
        move    $4,$2
        lui		$25,0xA000		        #lw		$25,%call16(fact)($28)
        addiu	$25,$25,0x0040		    #lw		$25,%call16(fact)($28)
        nop
		jalr	$31,$25		
        nop
        lw	$28,$fp,16
        move    $3,$2
        lw	$2,$fp,40
        nop
        mult    $3,$2
        mflo    $4
        sw	$4,$fp,24
#$L4:
        lw	$2,$fp,24
        move    $sp,$fp
        lw	$31,$sp,36
        lw	$fp,$sp,32
        addiu   $sp,$sp,40
        jr	$31
        nop
        